package com.javaweb.dao.impl;

import com.javaweb.dao.TagDao;
import com.javaweb.model.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

@Repository
public class TagDaoImpl implements TagDao {
    @Autowired
    JdbcTemplate jdbcTemplate ;
    @Override
    public int insert(Tag tag) {
        // 检查 tag 对象是否为空以及标签名称是否为空
        if (tag == null || tag.getName() == null) {
            throw new IllegalArgumentException("Tag and tag name cannot be null");
        }

        // SQL 插入语句
        String sql = "INSERT INTO tb_tag (name, update_time, create_time) VALUES (?, ?, ?)";

        // 插入参数
        Object[] args = new Object[] {
                tag.getName(),
                new java.sql.Date(tag.getCreateTime().getTime()),
                new java.sql.Timestamp(System.currentTimeMillis()) // 设置当前时间为创建时间
        };

        // 执行插入操作
        int rowsAffected = jdbcTemplate.update(sql, args);

        // 返回值：如果插入成功，返回1；否则返回0
        return rowsAffected > 0 ? 1 : 0;
    }


    @Override
    public int insertArticleTag(Integer articleId, Integer tags) {
        // 检查 articleId 和 tagId 是否为空
        if (articleId == null || tags == null) {
            throw new IllegalArgumentException("ArticleId and TagId cannot be null");
        }

        // SQL 插入语句
        String sql = "INSERT INTO tb_article_tag (article_id, tag_id) VALUES (?, ?)";

        // 插入参数
        Object[] args = new Object[] {
                articleId,
                tags
        };

        // 执行插入操作
        int rowsAffected = jdbcTemplate.update(sql, args);

        // 返回值：如果插入成功，返回1；否则返回0
        return rowsAffected > 0 ? 1 : 0;
    }

}
